/** @brief File declaring a class which handles various file/data paths.
 *
 * @author Johan "Solo" Luisier
 * @date 2014/03/17
 */
#ifndef DATAMANAGER_HPP
#define DATAMANAGER_HPP

#include <QtCore/QList>
#include <QtCore/QString>

/** @brief Class managing paths for the application.
 *
 * This class manages the possible paths were user data can be stored. It also
 * provides the interface for reading/writing those data to file (using
 * XmlStreamReader and XmlStreamWrites classes).
 *
 * @date 2014/03/17
 */
class DataManager
{
public:
    DataManager();
    virtual ~DataManager();
    virtual bool saveToFile( const QString& filePath ) const = 0;
    virtual bool loadFromFile( const QString& filePath ) const = 0;
protected:
    QList< QString > getFileList( const QString& directory, const QString& filePattern );
};

#endif // DATAMANAGER_HPP
